// // 取到需要权限判断的路由表
// import {asyncRouterMap,fixedRouter} from '@/router'
// import router from '@/router'
// var addRouFlag = false

// router.beforeEach((to, from, next) => {
// 	// 取到用户的角色
// 	let perms = sessionStorage.getItem("perms")
// 	let all = []
//     // console.log(GetRole,999999887)
// 	// 如果登录了
// 	if (perms!="") {
// 		next() //next()方法后的代码也会执行
// 		// 1.如果路由表 没根据角色进行筛选,就筛选一次

// 		if (!addRouFlag) {
// 			addRouFlag = true
// 			if(perms == "*"){
// 				all = asyncRouterMap
// 			}else{
// 				all = baseRoleGetRouters(asyncRouterMap, perms.split(","))
// 			}
// 			// 2.根据用户的角色、和需要动态展示的路由，生成符合用户角色的路由
// 			// var getRoutes = all = 
// 			// 3.利用global属性，让渲染菜单的组件sideMeuns.vue重新生成左侧菜单
// 			global.antRouter = all
// 			// 4.将生成好的路由addRoutes
// 			// router.addRoutes(fixedRouter[2].children.concat(all))
// 			router.addRoutes(all)
// 			// 5.push之后，会重新进入到beforeEach的钩子里,直接进入第一个if判断
// 			router.push({path: to.path})
// 			// console.log(global.antRouter)
// 		}
// 	} else {
// 		// 用户没登录，跳转到登录页面
// 		if (to.path == '/login') {
// 			next()
// 		} else {
// 			next('/login')
// 		}
// 	}

// })


// function hasPermission(route, perms) {
// 	if (route.meta && route.meta.perms) {
// 		return perms.some(role => route.meta.perms.indexOf(role) >= 0)
// 	} else {
// 		return true
// 	}
// }
// // 根据用户的角色取到该用户对应的路由
// function baseRoleGetRouters(allRoutes, perms) {
// 	// allRoutes是动态路由表
// 	// roles是取到的用户角色，数组
// 	let rightRoutes = allRoutes.filter((route, index) => {
// 		if (hasPermission(route, perms)) {
// 			if (route.children && route.children.length) {
// 				route.children = baseRoleGetRouters(route.children, perms)
// 			}
// 			return true
// 		}
// 		return false
// 	})
// 	return rightRoutes
// }




// 取到需要权限判断的路由表
import {permissionRouter,fixedRouter} from '@/router'
import router from '@/router'
import Vue from 'vue'
// export const createRouter = routes => new VueRouter({
//     mode: 'history',
//     base: process.env.BASE_URL,
//     routes
//     });
// router.match = createRouter(constantRoutes).match;
var addRouFlag = false
router.beforeEach((to, from, next) => {
	let roles = sessionStorage.getItem("perms")
	if (roles && roles !== 'unload') {
		next() //next()方法后的代码也会执行
		// 1.如果路由表 没根据角色进行筛选,就筛选一次
		if (!addRouFlag) {
			addRouFlag = true
			// 2.根据用户的角色、和需要动态展示的路由，生成符合用户角色的路由
			let arr = []
			if (roles == "*") {
				arr = permissionRouter
				// console.log(roles == "*")
			} else {
				arr = baseRoleGetRouters(permissionRouter, roles.split(","))
				// var getRoutes = baseRoleGetRouters(permissionRouter, roles)
				// global.antRouter = fixedRouter[2].children.concat(getRoutes)
			}
			// 3.利用global属性，让渲染菜单的组件sideMeuns.vue重新生成左侧菜单
			global.antRouter = arr
			// 4.将生成好的路由addRoutes
			router.addRoutes(arr)
			// 5.push之后，会重新进入到beforeEach的钩子里,直接进入第一个if判断
			router.push({
				path: to.path
			})
		}
	} else {
		// 用户没登录，跳转到登录页面
		if (to.path === '/login') {
			next()
		} else {
			next('/login')
		}
	}
})

function hasPermission(route, roles) {
	if (route.meta && route.meta.perms) {
		return roles.some(role => route.meta.perms.indexOf(role) >= 0)
	} else {
		return true
	}
}
// 根据用户的角色取到该用户对应的路由
export function baseRoleGetRouters(allRoutes, roles) {
	// allRoutes是动态路由表
	// roles是取到的用户权限数组
	let rightRoutes = allRoutes.filter((route, index) => {
		if (hasPermission(route, roles)) {
			if (route.children && route.children.length) {
				route.children = baseRoleGetRouters(route.children, roles)
			}
			return true
		}
		return false
	})
	return rightRoutes
}
